package com.kmis.entities;
import com.mybatisflex.annotation.*;
import lombok.Data;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.sql.Timestamp;
import java.lang.Boolean;
import java.lang.String;
import java.lang.Integer;

/**
 * 实体类。
 *
 * @author MLB
 * @since 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "", description = "")
@Table(value = "tbl_user")
public class User {

    @ApiModelProperty(value = "")
    @ColumnAlias("user_id")
    @Column(value = "id")
    @Id(keyType = KeyType.Auto)
    private Integer userId;

    /**
     * 用户名（账号）
     */
    @ApiModelProperty(value = "用户名（账号）")
    @Column(value = "username")
    private String username;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    @Column(value = "password")
    private String password;

    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    @Column(value = "avatar")
    private String avatar;

    /**
     * 昵称
     */
    @ApiModelProperty(value = "昵称")
    @Column(value = "nickname")
    private String nickname;

    /**
     * 性别（0表示未知，1表示男，2表示女）
     */
    @ApiModelProperty(value = "性别（0表示未知，1表示男，2表示女）")
    @Column(value = "sex")
    private Integer sex;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    @Column(value = "email")
    private String email;

    /**
     * 电话号码
     */
    @ApiModelProperty(value = "电话号码")
    @Column(value = "phone")
    private String phone;

    /**
     * 状态（0表示封禁，1表示正常使用，2删除）
     */
    @ApiModelProperty(value = "状态（0表示封禁，1表示正常使用）")
    @Column(value = "status",onInsertValue = "1")
    private Integer status;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @Column(value = "create_time",onInsertValue = "now()")
    private Timestamp createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    @Column(value = "update_time",onUpdateValue = "now()")
    private Timestamp updateTime;

    /**
     * 逻辑删除字段（0表示未删除，1表示已删除）
     */
    @ApiModelProperty(value = "逻辑删除字段（0表示未删除，1表示已删除）")
    @Column(value = "del_flag",isLogicDelete = true)
    private Boolean delFlag;


    /**
     * 用户所属部门id
     */
    @ApiModelProperty(value = "用户所属部门id")
    @Column(value = "dep_id")
    private Integer depId;

    @ApiModelProperty(value = "备注")
    @Column(value = "remark")
    private String remark;
}
